<?php
/**
* Controlador PESSOA
*  @filesource
 * @author			Diogo Corazolla
 * @copyright		Copyright 2009 M2R
 * @package			broffices
 * @subpackage		broffices.application.controllers
 * @version			1.0
*/
class PreAtendimentoController extends Zend_Controller_Action
{
	private $intTamPag;
	
	/**
	 * Este metodo sera executado sempre que a classe for instanciada,
	 * depois do construtor.
	 * Faz o carregamento das classes que serao usadas pelo controlador.
	 * @return void
	 */
	public function init()
	{
		Zend_Loader::loadClass('PreAtendimento');
		
		// inicializando variaveis com valor padrao
		$this->intTamPag = 30;
	}

	/**
	 * Metodo que mostra a pagina inicial
	 * @return void
	 */
	public function indexAction()
	{
		$this->montaTela("preatendimento/bodyindex.tpl", array(), 
							false);
	}
	
	/**
	 * Metodo que mostra o formulario de novo
	 * @return void
	 */
	public function novoAction()
	{
		$this->montaTela("preatendimento/bodyform.tpl", 
							array("acao"=>"pre-atendimento/incluir",
								  "dte_data"=>date("d/m/Y")), 
							false);
	}
	
	/**
	 * Metodo que mostra o grid
	 * @return void
	 */
	public function tabelaAction()
	{
		$pag = 1;
		$post = Zend_Registry::get('post');
		if (isset($post->pag)) $pag = $post->pag;
		if (isset($post->tamPag)) $this->intTamPag = $post->tamPag;
		
		$inicio = ($pag>1) ? ($pag-1)*$this->intTamPag : 0;
		$fim = $inicio + $this->intTamPag;
		$nome = $post->nome;
		$dataInicio = ConverteData($post->data_inicio, 13)." 00:00:00";
		$dataFim = ConverteData($post->data_fim, 13)." 23:59:59";
		
		$arrBusca = array();
		$arrBusca["bln_ativo="] = 1;
		
		if (!empty($nome)) $arrBusca["vhr_nome like "] = "%".$nome."%";
		 
		if($post->data_inicio){
			$dataInicio = ConverteData($dataInicio,13);
			$arrBusca["dte_data >= "] = $dataInicio;
		}
		if($post->data_fim){
			$dataFim = ConverteData($dataFim,13);
			$arrBusca["dte_data <= "] = $dataFim;
		}
		
		// Pegando clientes do banco de dados
		$tblPreatendimento = new PreAtendimento();
		$total = $tblPreatendimento->pegaTotal($arrBusca);
		if ($fim>$total) $fim = $total;
		$totalPag = (int)(($total % $this->intTamPag == 0)?($total/$this->intTamPag):(($total/$this->intTamPag)+1));
		$RsPreatendimento = $tblPreatendimento->busca($arrBusca, 
											array("vhr_nome"), 
											$this->intTamPag, 
											$inicio);
											
		$this->montaTela("preatendimento/bodytabela.tpl", 
							array("pag"=>$pag, 
									"total"=>$total, 
									"inicio"=>($inicio+1), 
									"fim"=>$fim,
									"totalPag"=>$totalPag,
									"nome"=>$nome,
									"data_inicio"=>$post->data_inicio,
									"data_fim"=>$post->data_fim,
									"preatendimentos"=>$RsPreatendimento,
									"urlEditar"=>"pre-atendimento/editar",
									"urlApagar"=>"pre-atendimento/apagar"), 
							false);
	}
	
	/**
	 * monta form de edicao
	 * @param int $cod - codigo do objeto a ser editado
	 * @return void
	 */
	public function editarAction()
	{
		$post = Zend_Registry::get('post');
		$cod = $post->codigo;
		
		$tblPreatendimento = new PreAtendimento();
		$row = $tblPreatendimento->find($cod)->current();
		$row->__set("dte_data", substr($row->__get("dte_data"), 8, 2) ."/". substr($row->__get("dte_data"), 5, 2) ."/". substr($row->__get("dte_data"), 0, 4));
		$this->montaTela("preatendimento/bodyform.tpl", 
							array("acao"=>"pre-atendimento/alterar",
									"preatendimento"=>$row), 
							false);
	}
	
	/**
	 * grava alteracoes no banco
	 * @return void
	 */
	public function alterarAction()
	{
		$post = Zend_Registry::get('post');
		$codigo = $post->cod;
		$nome = $post->nome;
		$email = $post->email;
		$telefone = $post->telefone;
		$descricao = $post->descricao;
		$auxData = explode("/", $post->data);
		$data = $auxData[2]."-".$auxData[1]."-".$auxData[0]." H:i:s";
		
		$mensagem = "";
		$script = "";
		
		$tblPreatendimento = new PreAtendimento();
		$row = $tblPreatendimento->find($codigo)->current();
		$row->vhr_nome = $nome;
		$row->vhr_telefone = $telefone;
		$row->vhr_email = $email;
		$row->vhr_descricao = $descricao;
		$row->dte_data = $data;
		//$row->usuario_id = $_SESSION['Zend_Auth']['storage']['id'];
		$row->save();
		
		$mensagem = "Pré-atendimento alterado com sucesso";
		$_site = Zend_Registry::get("site");
		$script = "\$('#div_form').html('');\n
		jqAjaxLink('".$_site["url"]."pre-atendimento/tabela', '', 'div_tabela');";	
		
		$this->montaTela("preatendimento/bodymensagem.tpl", 
							array("mensagem"=>$mensagem, 
									"script"=>$script), 
							false);
	}
	
	/**
	 * monta form de exclusao
	 * @param int $cod - codigo do objeto a ser apagado
	 * @return void
	 */
	public function apagarAction()
	{
		$post = Zend_Registry::get('post');
		$cod = $post->codigo;
		
		$tblPreatendimento = new PreAtendimento();
		$row = $tblPreatendimento->find($cod)->current();
		$row->__set("dte_data", substr($row->__get("dte_data"), 8, 2) ."/". substr($row->__get("dte_data"), 5, 2) ."/". substr($row->__get("dte_data"), 0, 4));
		$this->montaTela("preatendimento/bodyapagar.tpl", 
							array("acao"=>"pre-atendimento/excluir",
									"preatendimento"=>$row), 
							false);
	}
	
	/**
	 * Metodo que apaga uma cliente do banco
	 * @return void
	 */
	public function excluirAction()
	{
		$post = Zend_Registry::get('post');
		$codigo = $post->cod;
		
		$mensagem = "";
		$script = "";
		
		$tblPreatendimento = new PreAtendimento();
		$tblPreatendimento->apaga($codigo);
		
		$mensagem = "Pré-atendimento apagado com sucesso";
		$_site = Zend_Registry::get("site");
		$script = "\$('#div_form').html('');\n
		jqAjaxLink('".$_site["url"]."pre-atendimento/tabela', '', 'div_tabela');";	
		
		$this->montaTela("preatendimento/bodymensagem.tpl", 
							array("mensagem"=>$mensagem, 
									"script"=>$script), 
							false);
	}
	
	/**
	 * Metodo que grava clientes no banco de dados
	 * @return void
	 */
	public function incluirAction()
	{
		// pegando dados POST salvos 
		$post = Zend_Registry::get('post');
		$nome = $post->nome;
		$telefone = $post->telefone;
		$email = $post->email;
		$descricao = $post->descricao;
		$auxData = explode("/", $post->data);
		$data = $auxData[2]."-".$auxData[1]."-".$auxData[0]." H:i:s";		
		
		$usuario_id = $_SESSION['Zend_Auth']['storage']['id'];
		
		// objeto modelo tabela preatendimento
		$tblPreatendimento = new PreAtendimento();

		$mensagem = "";
		$script = "";
		
		$dados = array( "usuario_id"=>$usuario_id,
						"vhr_nome"=>$nome, 
						"vhr_telefone"=>$telefone,
						"vhr_email"=>$email,
						"vhr_descricao"=>$descricao, 
						"dte_data"=>$data, 
						"bln_ativo"=>1);
		$tblPreatendimento->insert($dados);
		$mensagem = "Pré-atendimento cadastrado com sucesso";
		$_site = Zend_Registry::get("site");
		$script = "\$('#div_form').html('');\n
		jqAjaxLink('".$_site["url"]."pre-atendimento/tabela', '', 'div_tabela');";	
		
		$this->montaTela("preatendimento/bodymensagem.tpl", 
							array("mensagem"=>$mensagem, 
									"script"=>$script), 
							false);
	}
	
	public function gerarCsvAction()
	{
		$pag = 1;
		$get = Zend_Registry::get('get');
		$nome = $get->nome;
		$dataInicio = ConverteData($get->data_inicio, 13)." 00:00:00";
		$dataFim = ConverteData($get->data_fim, 13)." 23:59:59";
		
		$arrBusca = array();
		$arrBusca["bln_ativo="] = 1;
		
		if (!empty($nome)) $arrBusca["vhr_nome like "] = "%".$nome."%";
		 
		if($get->data_inicio){
			$dataInicio = ConverteData($dataInicio,13);
			$arrBusca["dte_data >= "] = $dataInicio;
		}
		if($get->data_fim){
			$dataFim = ConverteData($dataFim,13);
			$arrBusca["dte_data <= "] = $dataFim;
		}
		
		// Pegando clientes do banco de dados
		$tblPreatendimento = new PreAtendimento();
		$rsPreatendimento = $tblPreatendimento->busca($arrBusca, 
													array("vhr_nome"));
	
		$html = "<table width='100%'>";
		$html .= "<tr>
					<td width='250px' align='center' bgcolor='gray' style='border:1px #FFFFFF solid; background-color:#CCCCCC; font-weight:bold; color:#54859B;'>NOME</td>
			        <td width='700px' align='center' bgcolor='gray' style='border:1px #FFFFFF solid; background-color:#CCCCCC; font-weight:bold; color:#54859B;'>DATA</td>
			        <td width='100px' align='center' bgcolor='gray' style='border:1px #FFFFFF solid; background-color:#CCCCCC; font-weight:bold; color:#54859B;'>E-MAIL</td>
			        <td width='100px' align='center' bgcolor='gray' style='border:1px #FFFFFF solid; background-color:#CCCCCC; font-weight:bold; color:#54859B;'>TELEFONE</td>
			        <td width='100px' align='center' bgcolor='gray' style='border:1px #FFFFFF solid; background-color:#CCCCCC; font-weight:bold; color:#54859B;'>DESCRI&Ccedil;&Atilde;O</td>
				 </tr>";

		foreach($rsPreatendimento as $atendimento)
		{
			//xd(substr($atendimento->vhr_ano_mes_referencia,0,4));
			$html .= "<tr>";
			$html .= " <td valign='top'>".$atendimento->vhr_nome."</td>
			           <td valign='top' align='center'>".ConverteData($atendimento->dte_data,5)."</td>
			           <td valign='top'>".$atendimento->vhr_email."</td>
			           <td valign='top'>".$atendimento->vhr_telefone."</td>
			           <td valign='top'>".$atendimento->vhr_descricao."</td>";
			$html .= "</tr>";
		}
		$html .= "</table>";

		//xd($html);
		$this->getResponse()
			->setHeader('Content-Disposition', 'attachment; filename="pre_atendimento.xls"')
			->setHeader('Content-type', 'application/vnd.ms-excel');
			
		echo utf8_decode($html);
		$this->_helper->viewRenderer->setNoRender(true);
		
	}
	
	//RECUPERA NOMES CADASTRADOS NO PRE-ATENDIMENTO APARTIR DO TERMO DIGITADO
	public function recuperaNomesPreAtendimentoAction()
	{
		$get = Zend_Registry::get('get');
		//xd($get);
		$nome = $get->q;
		$arrNomesPreAtendimentos = array();
		
		if(!empty($nome))
		{
			$arrBusca = array();
			$arrBusca["bln_ativo="] = 1;
			$arrBusca["vhr_nome like "] = $nome."%"; 
			
			$tblPreAtendimento = new PreAtendimento();
			$rsPreAtendimento = $tblPreAtendimento->busca($arrBusca,
								  array("vhr_nome"));
			  
	 		$arrNomesPreAtendimentos = $rsPreAtendimento->toArray($rsPreAtendimento);
		}
		
		$this->montaTela("proposta/nomespreatendimento.tpl", 
					array("nomes"=>$arrNomesPreAtendimentos,
						  "termo"=>$nome), 
					false);
	}
	
	/**
	 * Monta a tela de retorno ao usuario
	 * @param string $corpo - arquivo tpl do corpo
	 * @param array $dados - array com os dados a serem inseridos na tela, no seguinte formato "nome"=>"valor"
	 * @param boolean $exibeHeader - true ou false para exibir header, menu e rodape 
	 * @return void
	 */
	private function montaTela($corpo, $dados=array(), $exibeHeader=true)
	{
		// iniciando view
		$view = Zend_Registry::get('view');
		// setando corpo
		$view->assign('_corpo',$corpo);

		// pegando variaveis globais do site
		$_site = Zend_Registry::get("site");
		// setando variaveis globais ao template
		$view->assign('_site', $_site);
		
		// percorrendo array de dados e inserindo no template
		foreach ($dados as $dado=>$valor)
		{
			$view->assign($dado, $valor);
		}
		
		// define o template master
		$tplLayout = $_site["layout"];
		// se exibirHeader for verdadeiro
		if ($exibeHeader)
		{
			// adiciona cabecalho
			$view->assign('_cabecalho', $_site["header"]);
			// adiciona menu
			$view->assign('_menu', $_site["menu"]);
			// adiciona rodape
			$view->assign('_rodape', $_site["footer"]);
		}
		// se exibirHeader for falso
		else
		{
			// define template master sem cabecalho
			$tplLayout = $_site["layout_sem_header"];
		}
		// retorna o tempalte master, com corpo e variaveis setadas
		$view->output($tplLayout);
	}
	
}